package logica.locacao;

import logica.util.Constantes;
import logica.veiculo.Estado;

/**
 * Enumera os tipos de coberturas possiveis.
 * @see logica.Seguro Seguro
 * @author Guilherme Santos G. Baptista em 09/10/2010
 */

public enum Cobertura {
	
	PARCIAL( Constantes.ESTADOS_PARCIAL ),
	TOTAL( Constantes.ESTADOS_TOTAL );
	
	private Estado[] estados;
	
	/**
	 * Construtor do enum Cobertura.
	 * @param estados Estado[] - Array de estados a serem cobertos pelo seguro.
	 */
	private Cobertura( Estado[] estados ){
		this.estados = estados;
	}
	
	/**
	 * Retorna todos os estados que sao cobertos.
	 * @return Estado[] - O array de estados que sao cobertos
	 */
	public Estado[] getEstadosCobertos(){
		return this.estados;
	}
	
	/**
	 * Verifica se a cobertura cobre determinado estado.
	 * @param estado Estado - O estado a ser verificado
	 * @return <i>true</i> se cobre, <i>false</i> caso contrario
	 */
	public boolean cobre(Estado estado){
		for (int i=0; i<this.estados.length; i++){
			if ( this.estados[i].equals(estado) ){
				return true;
			}
		}
		return false;
	}
}